//拦截所有请求设置头部信息
axios.defaults.baseURL = 'http://api-breakingnews-web.itheima.net'
// 从需求角度出发没有必要给所有请求都添加token
// axios.defaults.headers.common['Authorization'] = localStorage.getItem('token');
// 添加请求拦截器
axios.interceptors.request.use(function(config){
    // 在发送请求之前做什么
    // console.log(config);
    // 判断路径中，是否有/api 或者 / my 
    // indexOf() 方法可返回某个指定的字符串值在字符串中首次出现的位置。
    // 如果没有找到匹配的字符串则返回 -1。
    // !== -1 或>=0 或 > -1 都说明查到了
    if(config.url.indexOf('/my') !== -1){
        // 此处是等号赋值
        // 设置了参数  根据参数类型会设置头部信息 这样赋值不会影响原来的头信息设置
        config.headers.Authorization = localStorage.getItem('token')
        // 下面这种写法会覆盖到原本的头部信息
        // config.headers = {
        //     Authorization = localStorage.getItem('token')
        // }
            
    
    }
    // 修改完毕的config需要返回
    return config
},function(error){
    // 对请求错误做些什么
    //将来讲解Promise 对象 详细讲解
    return Promise.reject(error)
})

//添加响应拦截器
axios.interceptors.response.use(function(response){
    // 输出响应结果
    // console.log(response);
    if(response.data.message === "身份认证失败！") {
        // 跳转到登录界面 ，销毁 token
        location.href = '/login.html'
        localStorage.removeItem('token')
        return
    }
    return response
})